﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using Negocio.Clases_BL;
using Capa_Entidad;
using Capa_Negocio_Interface;
using Capa_Negocio_Facade;

public partial class Ventas_wfAdmisionPaciente : System.Web.UI.Page
{
    IFacadeRegistrarAdmision objFacadeAdmicion = new FacadeRegistrarAdmision();

    private static string vOperacion = "C";
    protected void Page_Load(object sender, EventArgs e)
    {
        if (!IsPostBack)
        {
            //CodPaciente = Request.QueryString["CodPaciente"].ToString();
            vOperacion = (String)Session["Operacion"];

            if (vOperacion == "M")
            {

                Mostrar_Paciente((Int32)Session["IDPaciente"]);

            }
            else if (vOperacion == "D")
            {
                btnAceptar.Visible = false;
                btnCancelar.Visible = false;
                Mostrar_Paciente((Int32)Session["IDPaciente"]);
            }

            else
            {
                limpiar();
            }
        }
    }

    void Mostrar_Paciente(Int32 IdPaciente)
    {
        clsPacienteBLcs BL_Paciente = new clsPacienteBLcs();
        var consulta = from P in objFacadeAdmicion.listarPacientes()
                       where P.PAC_ID_PACIENTE == IdPaciente
                       select P;
        foreach (var S in consulta)
        {
            txtApellidoPaterno.Text = S.PAC_APELLIDO_PATERNO;
            txtApellidoMaterno.Text = S.PAC_APELLIDO_MATERNO;
            txtNombres.Text =S.PAC_NOMBRES ;
            dtpfechaNac.Value=S.PAC_FECHA_NACIMIENTO;
            txtNroDocumento.Text=S.PAC_NRO_DOCUMENTO;
            txtTelefono.Text=S.PAC_TELEFONO;
            txtDireccion.Text=S.PAC_DIRECCION_DOMICILIO;
           // txtCodigo.Text=S.PAC_CODIGO_PACIENTE;
            txtNumero.Text=S.PAC_NRO_DOMICILIO;
            txtPiso.Text=S.PAC_PISO_DOMICILIO;
            txtManzana.Text=S.PAC_MANZANA_DOMICILIO;
            txtLote.Text=S.PAC_LOTE_DOMICILIO;
            txtSector.Text=S.PAC_SECTOR_DOMICILIO;
            txtEtapa.Text=S.PAC_ETAPA_DOMICILIO;
            txtObservacion.Text=S.PAC_OBSERVACION;
            txtNroSeguro.Text=S.PAC_NRO_SEGURO;
            cboSexo.SelectedItem= cboSexo.Items.FindByValue(Convert.ToString(  S.TIPS_ID_TIPO_SEXO));
            cboEstadoCivil.SelectedItem=cboEstadoCivil.Items.FindByValue(Convert.ToString(S.TEC_ID_TIPO_ESTADO_CIVIL));
            cboTipoDocumento.SelectedItem= cboTipoDocumento.Items.FindByValue(Convert.ToString(S.TDI_ID_TIPO_DOCUMENTO_IDENTIDAD));
            cboTipoTrabajo.SelectedItem=cboTipoTrabajo.Items.FindByValue( Convert.ToString(S.GEN_ID_TIPO_TRABAJO));
            seEdad.Value=S.PAC_EDAD;
            sePeso.Value=S.PAC_PESO;
            seNuHijos.Value=S.PAC_HIJOS;
            cboTipoSangre.SelectedItem=cboTipoSangre.Items.FindByValue( Convert.ToString(S.GEN_TSAN_ID));
            dtpfechaUlt_Odontolgo.Value=S.PAC_FECHA_ULT_ODONTOLOGICA;
            dtpChequeoGeneral.Value=S.PAC_FECHA_ULT_CHEQUEO_GENERAL;
            cboAlergias.SelectedItem=cboAlergias.Items.FindByValue( Convert.ToString( S.GEN_ALER_ID));
            txtOtrasAlergias.Text=S.PAC_OTRAS_ALERGIAS;
            cboEnfermedades.SelectedItem= cboEnfermedades.Items.FindByValue(Convert.ToString(S.GEN_ENFER_ID));
            txtCorreo1.Text = S.PAC_CORREO1;
            txtCorreo2.Text = S.PAC_CORREO2;
            txtUrbanizacion.Text = S.PAC_URBANIZACION;
            dtpChequeoOculista.Value = S.PAC_FECHA_OCULISTA;
            dtpChequeoNutricionista.Value= S.PAC_FECHA_NUTRICIONISTA;
            sePresionDiastoles.Value = S.PAC_PRESION_DIASTOLICA;
            sePresionSistoles.Value = S.PAC_PRESION_SISTOLICA;
            txtOtrasEnfermedades.Text = S.PAC_ENFERMEDADES_NO_CURABLES;
        }
    }

    protected void ASPxButton1_Click(object sender, EventArgs e)
    {
        if (validarInsercion() == true)
        {
            clsPacienteBLcs BL_Paciente = new clsPacienteBLcs();
            ADM_PACIENTE Ent_Paciente = new ADM_PACIENTE();

            //validaciones

            seEdad.Value = DateTime.Now.Year - dtpfechaNac.Date.Year;

            if (vOperacion == "C")
            {
                var consulta = from P in objFacadeAdmicion.listarPacientes()
                               where P.TDI_ID_TIPO_DOCUMENTO_IDENTIDAD == Convert.ToInt32(cboTipoDocumento.SelectedItem.Value) && P.PAC_NRO_DOCUMENTO == txtNroDocumento.Text
                               select P;
                if (consulta.Count() > 0)
                {
                    //Util.showmsg("Error: El Documento de Identidad Ya existe!!!", this.Page);
                    lblMensaje.Text = "Error: El Documento de Identidad Ya existe!!";
                    ScriptManager.RegisterStartupScript(this, typeof(Page), "scriptkey", "pcMensaje.Show();", true);
                }

                Ent_Paciente.PAC_ID_PACIENTE = objFacadeAdmicion.UltimoNumero() + 1;//reeeplazar por metodo
            }
            else
            {
                Ent_Paciente.PAC_ID_PACIENTE = (Int32)Session["IDPaciente"];
            }

            //Ent_Paciente.PAC_ID_PACIENTE = BL_Paciente.UltimoNumero()+1;//reeeplazar por metodo
            Ent_Paciente.PAC_APELLIDO_PATERNO = txtApellidoPaterno.Text;
            Ent_Paciente.PAC_APELLIDO_MATERNO = txtApellidoMaterno.Text;
            Ent_Paciente.PAC_NOMBRES = txtNombres.Text;
            Ent_Paciente.PAC_FECHA_NACIMIENTO = dtpfechaNac.Date;
            Ent_Paciente.PAC_NRO_DOCUMENTO = txtNroDocumento.Text;
            Ent_Paciente.PAC_TELEFONO = txtTelefono.Text;
            Ent_Paciente.PAC_DIRECCION_DOMICILIO = txtDireccion.Text;
            Ent_Paciente.PAC_CODIGO_PACIENTE = (BL_Paciente.UltimoNumero() + 1).ToString("000000");
            Ent_Paciente.PAC_NRO_DOMICILIO = txtNumero.Text;
            Ent_Paciente.PAC_PISO_DOMICILIO = txtPiso.Text;
            Ent_Paciente.PAC_MANZANA_DOMICILIO = txtManzana.Text;
            Ent_Paciente.PAC_LOTE_DOMICILIO = txtLote.Text;
            Ent_Paciente.PAC_URBANIZACION = txtUrbanizacion.Text;
            Ent_Paciente.PAC_SECTOR_DOMICILIO = txtSector.Text;
            Ent_Paciente.PAC_ETAPA_DOMICILIO = txtEtapa.Text;
            Ent_Paciente.PAC_OBSERVACION = txtObservacion.Text;
            Ent_Paciente.PAC_NRO_SEGURO = txtNroSeguro.Text;
            Ent_Paciente.TIPS_ID_TIPO_SEXO = Convert.ToInt32(cboSexo.SelectedItem.Value);
            Ent_Paciente.TEC_ID_TIPO_ESTADO_CIVIL = Convert.ToInt32(cboEstadoCivil.SelectedItem.Value);
            Ent_Paciente.TDI_ID_TIPO_DOCUMENTO_IDENTIDAD = Convert.ToInt32(cboTipoDocumento.SelectedItem.Value);
            Ent_Paciente.GEN_ID_TIPO_TRABAJO = Convert.ToInt32(cboTipoTrabajo.SelectedItem.Value);
            Ent_Paciente.PAC_EDAD = Convert.ToInt32(seEdad.Value);
            Ent_Paciente.PAC_PESO = Convert.ToInt32(sePeso.Value);
            Ent_Paciente.PAC_HIJOS = Convert.ToInt32(seNuHijos.Value);
            Ent_Paciente.GEN_TSAN_ID = Convert.ToInt32(cboTipoSangre.SelectedItem.Value);
            Ent_Paciente.PAC_FECHA_ULT_ODONTOLOGICA = dtpfechaUlt_Odontolgo.Date;
            Ent_Paciente.PAC_FECHA_ULT_CHEQUEO_GENERAL = dtpChequeoGeneral.Date;
            Ent_Paciente.GEN_ALER_ID = Convert.ToInt32(cboAlergias.SelectedItem.Value);
            Ent_Paciente.PAC_OTRAS_ALERGIAS = txtOtrasAlergias.Text;
            Ent_Paciente.GEN_ENFER_ID = Convert.ToInt32(cboEnfermedades.SelectedItem.Value);
            Ent_Paciente.PAC_CORREO1 = txtCorreo1.Text;
            Ent_Paciente.PAC_CORREO2 = txtCorreo2.Text;
            Ent_Paciente.PAC_URBANIZACION = txtUrbanizacion.Text;
            Ent_Paciente.PAC_FECHA_OCULISTA = dtpChequeoOculista.Date;
            Ent_Paciente.PAC_FECHA_NUTRICIONISTA = dtpChequeoNutricionista.Date;
            Ent_Paciente.PAC_PRESION_DIASTOLICA = Convert.ToInt32(sePresionDiastoles.Value);
            Ent_Paciente.PAC_PRESION_SISTOLICA = Convert.ToInt32(sePresionSistoles.Value);
            Ent_Paciente.PAC_ENFERMEDADES_NO_CURABLES = txtOtrasEnfermedades.Text;

            //Ent_Paciente.PAI_ID_PAIS_DOMICILIO 
            //Ent_Paciente.PAI_ID_PAIS_NACIMIENTO
            //Ent_Paciente.EMP_ID_EMPLEADO

            if (vOperacion == "C")
            {
                if (objFacadeAdmicion.InsertarPaciente(Ent_Paciente))
                {
                    //Util.showmsg("Nuevo paciente agregado!!!", this.Page);
                    lblMensaje.Text = "Nuevo paciente agregado!!!";
                    ScriptManager.RegisterStartupScript(this, typeof(Page), "scriptkey", "pcMensaje.Show();", true);
                    limpiar();
                }
                else
                {
                    //Util.showmsg("Error: No se pudo registrar Paciente!!!", this.Page);
                    lblMensaje.Text = "Error: No se pudo registrar Paciente!!!";
                    ScriptManager.RegisterStartupScript(this, typeof(Page), "scriptkey", "pcMensaje.Show();", true);
                }
                //Response.Redirect("wfAdmisionPacienteListado.aspx", true);
            }
            else
            {
                if (objFacadeAdmicion.ModificarPaciente(Ent_Paciente))
                {
                    //Util.showmsg("Se modifico datos de paciente", this.Page);
                    lblMensaje.Text = "Se modifico datos de paciente";
                    ScriptManager.RegisterStartupScript(this, typeof(Page), "scriptkey", "pcMensaje.Show();", true);
                    //DevExpress.Utils.WaitDialogForm();
                    Response.Redirect("wfAdmisionPacienteListado.aspx", true);
                }
                else
                {
                    //Util.showmsg("Error: No se pudo registrar Paciente!!!", this.Page);
                    lblMensaje.Text = "Error: No se pudo registrar Paciente!!!";
                    ScriptManager.RegisterStartupScript(this, typeof(Page), "scriptkey", "pcMensaje.Show();", true);
                }
            }
        }             
    }
    protected void ASPxButton2_Click(object sender, EventArgs e)
    {
        Response.Redirect("wfAdmisionPacienteListado.aspx", true);
    }
    void limpiar()
    {
        txtApellidoPaterno.Text = "";
        txtApellidoMaterno.Text = "";
        txtNombres.Text = "";
        dtpfechaNac.Text="";
        txtNroDocumento.Text="";
        txtTelefono.Text="";
        txtDireccion.Text="";
       // txtCodigo.Text="";
        txtNumero.Text="";
        txtPiso.Text="";
        txtManzana.Text="";
        txtLote.Text="";
        txtSector.Text="";
        txtEtapa.Text="";
        txtObservacion.Text="";
        txtNroSeguro.Text="";
        cboSexo.Text="";
        cboEstadoCivil.Text="";
        cboTipoDocumento.Text="";
        cboTipoTrabajo.Text="";
        seEdad.Value=0;
        sePeso.Value=0;
        seNuHijos.Value=0;
        cboTipoSangre.Text="";
        dtpfechaUlt_Odontolgo.Text="";
        dtpChequeoGeneral.Text="";
        cboAlergias.Text="";
        txtOtrasAlergias.Text="";
        cboEnfermedades.Text="";
        txtCorreo1.Text = "";
        txtCorreo2.Text = "";
        txtUrbanizacion.Text = "";
    }

    protected void dtpfechaNac_DateChanged(object sender, EventArgs e)
    {
        //seEdad.Value = DateTime.Now.Year - dtpfechaNac.Date.Year;

        if (dtpfechaNac.Date > DateTime.Today)
        {
            //Util.showmsg("La Fecha de Nacimiento no puede ser mayor que la Fecha de Hoy Día", this.Page);
            lblMensaje.Text = "La Fecha de Nacimiento no puede ser mayor que la Fecha de Hoy Día";
            ScriptManager.RegisterStartupScript(this, typeof(Page), "scriptkey", "pcMensaje.Show();", true);
        }
        else
        {
            seEdad.Value = DateTime.Now.Year - dtpfechaNac.Date.Year;
        }
    }

    private bool validarInsercion()
    {
        bool Bool = true;

        if (txtApellidoPaterno.Value == null)
        {
            Bool = false;
            //Util.showmsg("El Apellido Paterno debe ser ingresado", this.Page);
            lblMensaje.Text = "El Apellido Paterno debe ser ingresado";
            ScriptManager.RegisterStartupScript(this, typeof(Page), "scriptkey", "pcMensaje.Show();", true);
        }
        else if (txtApellidoMaterno.Value == null)
        {
            Bool = false;
            //Util.showmsg("El Apellido Materno debe ser ingresado", this.Page);
            lblMensaje.Text = "El Apellido Materno debe ser ingresado";
            ScriptManager.RegisterStartupScript(this, typeof(Page), "scriptkey", "pcMensaje.Show();", true);
        }
        else if (txtNombres.Value == null)
        {
            Bool = false;
            //Util.showmsg("El Nombre debe ser ingresado", this.Page);
            lblMensaje.Text = "El Nombre debe ser ingresado";
            ScriptManager.RegisterStartupScript(this, typeof(Page), "scriptkey", "pcMensaje.Show();", true);
        }
        else if (dtpfechaNac.Value == null)
        {
            Bool = false;
            //Util.showmsg("La Fecha de Nacimiento debe ser ingresada", this.Page);
            lblMensaje.Text = "La Fecha de Nacimiento debe ser ingresada";
            ScriptManager.RegisterStartupScript(this, typeof(Page), "scriptkey", "pcMensaje.Show();", true);
        }
        else if (cboTipoDocumento.Value == null)
        {
            Bool = false;
            //Util.showmsg("El Tipo de Documento debe ser ingresado", this.Page);
            lblMensaje.Text = "El Tipo de Documento debe ser ingresado";
            ScriptManager.RegisterStartupScript(this, typeof(Page), "scriptkey", "pcMensaje.Show();", true);
        }
        else if (txtNroDocumento.Value == null)
        {
            Bool = false;
            //Util.showmsg("La Número de Documento debe ser ingresado", this.Page);
            lblMensaje.Text = "La Número de Documento debe ser ingresado";
            ScriptManager.RegisterStartupScript(this, typeof(Page), "scriptkey", "pcMensaje.Show();", true);
        }
        else if (txtTelefono.Value == null)
        {
            Bool = false;
            //Util.showmsg("El Telefono debe ser ingresado", this.Page);
            lblMensaje.Text = "El Telefono debe ser ingresado";
            ScriptManager.RegisterStartupScript(this, typeof(Page), "scriptkey", "pcMensaje.Show();", true);
        }
        else if (txtNroSeguro.Value == null)
        {
            Bool = false;
            //Util.showmsg("El Número de Seguro debe ser ingresado", this.Page);
            lblMensaje.Text = "El Número de Seguro debe ser ingresado";
            ScriptManager.RegisterStartupScript(this, typeof(Page), "scriptkey", "pcMensaje.Show();", true);
        }
        else if (cboSexo.Value == null)
        {
            Bool = false;
            //Util.showmsg("El Sexo debe ser ingresado", this.Page);
            lblMensaje.Text = "El Sexo debe ser ingresado";
            ScriptManager.RegisterStartupScript(this, typeof(Page), "scriptkey", "pcMensaje.Show();", true);
        }
        else if (txtCorreo1.Value == null)
        {
            Bool = false;
            //Util.showmsg("El Correo debe ser ingresado", this.Page);
            lblMensaje.Text = "El Correo debe ser ingresado";
            ScriptManager.RegisterStartupScript(this, typeof(Page), "scriptkey", "pcMensaje.Show();", true);
        }
        else if (sePeso.Text == "0")
        {
            Bool = false;
            //Util.showmsg("El Peso debe ser ingresado", this.Page);
            lblMensaje.Text = "El Peso debe ser ingresado";
            ScriptManager.RegisterStartupScript(this, typeof(Page), "scriptkey", "pcMensaje.Show();", true);
        }
        else if (cboEstadoCivil.Value == null)
        {
            Bool = false;
            //Util.showmsg("El Estado Civil debe ser ingresado", this.Page);
            lblMensaje.Text = "El Estado Civil debe ser ingresado";
            ScriptManager.RegisterStartupScript(this, typeof(Page), "scriptkey", "pcMensaje.Show();", true);
        }
        else if (seNuHijos.Value == null)
        {
            Bool = false;
            //Util.showmsg("El Número de Hijos debe ser ingresado", this.Page);
            lblMensaje.Text = "El Número de Hijos debe ser ingresado";
            ScriptManager.RegisterStartupScript(this, typeof(Page), "scriptkey", "pcMensaje.Show();", true);
        }
        else if (cboTipoSangre.Value == null)
        {
            Bool = false;
            //Util.showmsg("El Tipo de Sangre debe ser ingresado", this.Page);
            lblMensaje.Text = "El Tipo de Sangre debe ser ingresado";
            ScriptManager.RegisterStartupScript(this, typeof(Page), "scriptkey", "pcMensaje.Show();", true);
        }
        else if (dtpfechaUlt_Odontolgo.Value == null)
        {
            Bool = false;
            //Util.showmsg("La Fecha de Última Visita al Odontologo debe ser ingresada", this.Page);
            lblMensaje.Text = "La Fecha de Última Visita al Odontologo debe ser ingresada";
            ScriptManager.RegisterStartupScript(this, typeof(Page), "scriptkey", "pcMensaje.Show();", true);
        }
        else if (dtpChequeoGeneral.Value == null)
        {
            Bool = false;
            //Util.showmsg("La Fecha de Última Chequeo General debe ser ingresada", this.Page);
            lblMensaje.Text = "La Fecha de Última Chequeo General debe ser ingresada";
            ScriptManager.RegisterStartupScript(this, typeof(Page), "scriptkey", "pcMensaje.Show();", true);
        }
        else if (dtpChequeoOculista.Value == null)
        {
            Bool = false;
            //Util.showmsg("La Fecha de Última Chequeo Oculista debe ser ingresada", this.Page);
            lblMensaje.Text = "La Fecha de Última Chequeo Oculista debe ser ingresada";
            ScriptManager.RegisterStartupScript(this, typeof(Page), "scriptkey", "pcMensaje.Show();", true);
        }
        else if (dtpChequeoNutricionista.Value == null)
        {
            Bool = false;
            //Util.showmsg("La Fecha de Última Chequeo Nutricionista debe ser ingresada", this.Page);
            lblMensaje.Text = "La Fecha de Última Chequeo Nutricionista debe ser ingresada";
            ScriptManager.RegisterStartupScript(this, typeof(Page), "scriptkey", "pcMensaje.Show();", true);
        }
        else if (cboAlergias.Value == null)
        {
            Bool = false;
            //Util.showmsg("La Fecha de Última Chequeo Nutricionista debe ser ingresada", this.Page);
            lblMensaje.Text = "La Fecha de Última Chequeo Nutricionista debe ser ingresada";
            ScriptManager.RegisterStartupScript(this, typeof(Page), "scriptkey", "pcMensaje.Show();", true);
        }
        else if (cboEnfermedades.Value == null)
        {
            Bool = false;
            //Util.showmsg("La Enfermedad no curable propia o de algún familiar debe ser ingresada", this.Page);
            lblMensaje.Text = "La Enfermedad no curable propia o de algún familiar debe ser ingresada";
            ScriptManager.RegisterStartupScript(this, typeof(Page), "scriptkey", "pcMensaje.Show();", true);
        }
        else if (cboTipoTrabajo.Value == null)
        {
            Bool = false;
            //Util.showmsg("El Tipo de Trabajo debe ser ingresado", this.Page);
            lblMensaje.Text = "El Tipo de Trabajo debe ser ingresado";
            ScriptManager.RegisterStartupScript(this, typeof(Page), "scriptkey", "pcMensaje.Show();", true);
        }

        return Bool;
    }
    protected void dtpfechaUlt_Odontolgo_DateChanged(object sender, EventArgs e)
    {
        if (dtpfechaUlt_Odontolgo.Date > DateTime.Today)
        {
            //Util.showmsg("La Fecha de Última Visita a Odontólogo no puede ser mayor que la Fecha de Hoy Día", this.Page);
            lblMensaje.Text = "La Fecha de Última Visita a Odontólogo no puede ser mayor que la Fecha de Hoy Día";
            ScriptManager.RegisterStartupScript(this, typeof(Page), "scriptkey", "pcMensaje.Show();", true);
        }
    }
    protected void dtpChequeoGeneral_DateChanged(object sender, EventArgs e)
    {
        if (dtpChequeoGeneral.Date > DateTime.Today)
        {
            //Util.showmsg("La Fecha de Último Chequeo General no puede ser mayor que la Fecha de Hoy Día", this.Page);
            lblMensaje.Text = "La Fecha de Último Chequeo General no puede ser mayor que la Fecha de Hoy Día";
            ScriptManager.RegisterStartupScript(this, typeof(Page), "scriptkey", "pcMensaje.Show();", true);
        }
    }
    protected void dtpChequeoOculista_DateChanged(object sender, EventArgs e)
    {
        if (dtpChequeoOculista.Date > DateTime.Today)
        {
            //Util.showmsg("La Fecha de Último Chequeo Oculista no puede ser mayor que la Fecha de Hoy Día", this.Page);
            lblMensaje.Text = "La Fecha de Último Chequeo Oculista no puede ser mayor que la Fecha de Hoy Día";
            ScriptManager.RegisterStartupScript(this, typeof(Page), "scriptkey", "pcMensaje.Show();", true);
        }
    }
    protected void dtpChequeoNutricionista_DateChanged(object sender, EventArgs e)
    {
        if (dtpChequeoNutricionista.Date > DateTime.Today)
        {
            //Util.showmsg("La Fecha de Último Chequeo Nutricionista no puede ser mayor que la Fecha de Hoy Día", this.Page);
            lblMensaje.Text = "La Fecha de Último Chequeo Nutricionista no puede ser mayor que la Fecha de Hoy Día";
            ScriptManager.RegisterStartupScript(this, typeof(Page), "scriptkey", "pcMensaje.Show();", true);
        }
    }
}

